Software products can be upgraded to provide additional features, fix problems or bugs in earlier releases, improve security, and/or for other reasons. As new features are replacing the old at a faster pace, new versions of a software product may need to be installed frequently to get the new features. Further, installing the new versions of the software products may have an impact on users' performance as users' devices may be unavailable during installation process. For example, when installing the new version of the software product, a user may have to quit the currently running applications on the device. Further, the time for installation process may depend upon a network bandwidth, and may result in down time of the device.